package com.shuda.business.monitor.service;

import com.shuda.business.monitor.dto.DataMonitorDTO;
import com.shuda.business.monitor.dto.MonitorStatisticsDTO;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.utils.PageResult;

import java.util.List;
import java.util.Map;

/**
 * 数据监控服务接口
 */
public interface DataMonitorService {

    /**
     * 获取监控统计信息
     */
    MonitorStatisticsDTO getMonitorStatistics(String channelId, String schemeId, String timeRange);

    /**
     * 分页查询监控数据列表
     */
    PageResult<DataMonitorDTO> getMonitorDataPage(PageDTO pageDTO, String channelId, String schemeId, String status, String startTime, String endTime);

    /**
     * 获取实时监控数据
     */
    Map<String, Object> getRealtimeMonitorData(String channelId, String schemeId);

    /**
     * 获取渠道分发统计
     */
    List<Map<String, Object>> getChannelDistributionStatistics(String timeRange);

    /**
     * 获取数据处理成功率统计
     */
    Map<String, Object> getProcessingSuccessRate(String timeRange);

    /**
     * 获取异常数据统计
     */
    Map<String, Object> getExceptionStatistics(String timeRange);

    /**
     * 获取性能监控数据
     */
    Map<String, Object> getPerformanceMonitorData(String timeRange);

    /**
     * 获取数据质量报告
     */
    Map<String, Object> getDataQualityReport(String timeRange);

    /**
     * 导出监控数据
     */
    String exportMonitorData(String channelId, String schemeId, String startTime, String endTime, String format);

    /**
     * 获取监控告警配置
     */
    Map<String, Object> getAlertConfig();

    /**
     * 更新监控告警配置
     */
    void updateAlertConfig(Map<String, Object> config);
}